package cn.easy.api;

import cn.easy.pojo.Sensor;
import cn.easy.vo.SensorVo;
import cn.easy.vo.SwitchVo;
import cn.easy.vo.TriggerInfoVo;

import java.util.List;

/**
 * 传感器业务层
 *
 * @author 谢子豪
 * @time 2017/10/5
 * @description
 */
public interface SensorService {
    //新增一个传感器
    void insertSensor(String userKey, int deviceId, Sensor sensor) throws Exception;

    //删除一个传感器
    void deleteSensor(String userKey, int sensorId) throws Exception;

    //更新传感器
    void updateSensor(String userKey, Sensor sensor) throws Exception;

    //查看一个设备下所有的传感器，设备为公开状态
    List<Sensor> searchDevicePublicSensor(int deviceId) throws Exception;

    //查看设备下所有的传感器，设备为公开或者非公开，需要身份验证
    List<Sensor> searchDeviceAllSensor(int deviceId, String userKey) throws Exception;

    /**
     * 查看一个传感器的详细信息，如果是非公开设备 需要验证userKey
     *
     * @param sensorId 要查询的传感器的主键
     * @param userKey  用户的key
     * @return
     * @throws Exception
     */
    Sensor searchSensorById(int sensorId, String userKey) throws Exception;

    //专门为开关类设置的获取状态方法，后期要整合下
    SensorVo searchSensorVoById(int sensorId) throws Exception;

    //拿到开关状态
    SwitchVo getSwitchState(int sensorId, String userKey) throws Exception;


}
